#ifndef _GAME_H_
#define _GAME_H_

#include <fstream>
#include <vector>
#include "spelare.h"
#include "pjaser/pjas.h"

/*---------------------------------

Klassen Game är övergripande och innehåller globala variabler (tex runda)
samt spelarna. Den skapas när ett spel startas, antingen ett helt nytt
eller ett spel från en sparad fil. Den destructas när spelet avslutas.

---------------------------------*/

class Game {
public:
	Pjas* markerad;
	Pjas* pjasArray[8][8];

	Spelare* spelare[2];

	class Drag {
	public:
		class Position {
		public:
			int x : 4;
			int y : 4;
		};
		bool spelare;
		Position fran, till;
		char typ;
	};

	int runda;
	bool vemsDrag;
	bool minFarg;
	std::vector<Drag> drag;
	std::ofstream gamelog;

	void musKlick( short xpos, short ypos );
	void markeraPjas( short x, short y );
	void avmarkeraPjas( void );
	void registreraDrag( char x1, char y1, char x2, char y2, char typ );
	bool blirDetSchack( short x, short y );
	
	class Promovering {		
		SDL_Surface* ritatUnder;
		Pjas* pjas;
		
		public:
		Promovering( Pjas* pjas );
		bool musKlick( short xpos, short ypos );
		~Promovering();
	};
	Promovering* promovering;

	Game( void );
	Game( std::ifstream& sparadFil );

	~Game( void );
};

extern Game* game;

#endif //_GAME_H_
